home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / program / gucrtr13.lha / GUICreator1.3 / GUIC.lha / GUICreator / Demos / Printer.c < prev    next >
C/C++ Source or Header  |  1995-08-22  |  39KB  |  757 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6.  
  7. #include "Printer_Includes.h"
  8. #include "Printer.h"
  9.  
  10. /*************************************************************************/
  11. /*                                                                       */
  12. /*   Variables and Structures                                            */
  13. /*                                                                       */
  14. /*************************************************************************/
  15.  
  16. extern struct IntuitionBase   *IntuitionBase;
  17. extern struct GfxBase         *GfxBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. /*************************************************************************/
  24. /*                                                                       */
  25. /*   Defines                                                             */
  26. /*                                                                       */
  27. /*************************************************************************/
  28.  
  29. #define RASTERX (GfxBase->DefaultFont->tf_XSize)
  30. #define RASTERY (GfxBase->DefaultFont->tf_YSize/2+4)
  31.  
  32. #define XSIZE(x)  ((x)*RASTERX)
  33. #define YSIZE(x)  ((x)*RASTERY)
  34.  
  35. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  36. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  37.  
  38. #define ERROR_NO_WINDOW_OPENED      1001L
  39. #define ERROR_NO_PUBSCREEN_LOCKED   1002L
  40. #define ERROR_NO_GADGETS_CREATED    1003L
  41. #define ERROR_NO_VISUALINFO         1004L
  42. #define ERROR_NO_PICTURE_LOADED     1005L
  43. #define ERROR_NO_GADGETLIST_CREATED 1006L
  44. #define ERROR_NO_WINDOW_MENU        1007L
  45. #define ERROR_SCREEN_TOO_SMALL      1008L
  46. #define ERROR_LIST_NOT_INITIALIZED  1009L
  47. /// struct PrinterPrefsWindowData
  48. struct PrinterPrefsWindowData
  49.     {
  50.     BOOL    gd_Disabled_Gadget2;
  51.     struct List *gd_Labels_Gadget2;
  52.     UWORD   gd_Selected_Gadget2;
  53.     UWORD   gd_Top_Gadget2;
  54.     BOOL    gd_Disabled_Gadget3;
  55.     BOOL    gd_Disabled_Gadget5;
  56.     BOOL    gd_Disabled_Gadget4;
  57.     BOOL    gd_Disabled_Gadget6;
  58.     UWORD   gd_Active_Gadget6;
  59.     char * *gd_Labels_Gadget6;
  60.     BOOL    gd_Disabled_Gadget7;
  61.     UWORD   gd_Active_Gadget7;
  62.     char * *gd_Labels_Gadget7;
  63.     BOOL    gd_Disabled_Gadget8;
  64.     UWORD   gd_Active_Gadget8;
  65.     char * *gd_Labels_Gadget8;
  66.     BOOL    gd_Disabled_Gadget9;
  67.     UWORD   gd_Active_Gadget9;
  68.     char * *gd_Labels_Gadget9;
  69.     BOOL    gd_Disabled_Gadget10;
  70.     UWORD   gd_Active_Gadget10;
  71.     char * *gd_Labels_Gadget10;
  72.     BOOL    gd_Disabled_Gadget11;
  73.     UWORD   gd_Active_Gadget11;
  74.     char * *gd_Labels_Gadget11;
  75.     BOOL    gd_Disabled_Gadget12;
  76.     ULONG   gd_Number_Gadget12;
  77.     BOOL    gd_Disabled_Gadget13;
  78.     ULONG   gd_Number_Gadget13;
  79.     BOOL    gd_Disabled_Gadget14;
  80.     ULONG   gd_Number_Gadget14;
  81.     };
  82.  
  83. ///
  84.  
  85. /*************************************************************************/
  86. /*                                                                       */
  87. /*   Routines to handle gadgets                                          */
  88. /*                                                                       */
  89. /*************************************************************************/
  90.  
  91. /// HandleGadgetsPrinterPrefsWindow()
  92.  
  93. void HandleGadgetsPrinterPrefsWindow(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct PrinterPrefsWindowData *gadgetdata,APTR userdata)
  94. {
  95.     switch(gadgetid)
  96.         {
  97.         case LVID_Gadget2:
  98.             Gadget2Clicked(win,wingads,gadgetid,messagecode,userdata);
  99.             break;
  100.         case BTID_Gadget3:
  101.             Gadget3Clicked(win,wingads,gadgetid,messagecode,userdata);
  102.             break;
  103.         case BTID_Gadget5:
  104.             Gadget5Clicked(win,wingads,gadgetid,messagecode,userdata);
  105.             break;
  106.         case BTID_Gadget4:
  107.             Gadget4Clicked(win,wingads,gadgetid,messagecode,userdata);
  108.             break;
  109.         case CYID_Gadget6:
  110.             Gadget6Clicked(win,wingads,gadgetid,messagecode,userdata);
  111.             break;
  112.         case CYID_Gadget7:
  113.             Gadget7Clicked(win,wingads,gadgetid,messagecode,userdata);
  114.             break;
  115.         case CYID_Gadget8:
  116.             Gadget8Clicked(win,wingads,gadgetid,messagecode,userdata);
  117.             break;
  118.         case CYID_Gadget9:
  119.             Gadget9Clicked(win,wingads,gadgetid,messagecode,userdata);
  120.             break;
  121.         case CYID_Gadget10:
  122.             Gadget10Clicked(win,wingads,gadgetid,messagecode,userdata);
  123.             break;
  124.         case CYID_Gadget11:
  125.             Gadget11Clicked(win,wingads,gadgetid,messagecode,userdata);
  126.             break;
  127.         case INID_Gadget12:
  128.             Gadget12Clicked(win,wingads,gadgetid,messagecode,userdata);
  129.             break;
  130.         case INID_Gadget13:
  131.             Gadget13Clicked(win,wingads,gadgetid,messagecode,userdata);
  132.             break;
  133.         case INID_Gadget14:
  134.             Gadget14Clicked(win,wingads,gadgetid,messagecode,userdata);
  135.             break;
  136.         };
  137. }
  138. ///
  139.  
  140.  
  141. /*************************************************************************/
  142. /*                                                                       */
  143. /*   Routines to create gadgets                                          */
  144. /*                                                                       */
  145. /*************************************************************************/
  146.  
  147. /// CreateGadgetsPrinterPrefsWindow()
  148. struct Gadget *CreateGadgetsPrinterPrefsWindow(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct PrinterPrefsWindowData *gadgetdata)
  149. {
  150.     struct Gadget *gadget=CreateContext(gadgetlist);
  151.     if (gadget)
  152.         {
  153.         wingads[LAID_Gadget1]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget1],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  154.         wingads[LVID_Gadget2]=gadget=CreateGadget(LISTVIEW_KIND,gadget,&newgad[LVID_Gadget2],GA_Disabled,gadgetdata->gd_Disabled_Gadget2,GTLV_Labels,gadgetdata->gd_Labels_Gadget2,GTLV_ReadOnly,FALSE,GTLV_Selected,gadgetdata->gd_Selected_Gadget2,GTLV_ShowSelected,NULL,GTLV_Top,gadgetdata->gd_Top_Gadget2,LAYOUTA_Spacing,0,TAG_END);
  155.         wingads[BTID_Gadget3]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget3],GA_Disabled,gadgetdata->gd_Disabled_Gadget3,GT_Underscore,'_',TAG_END);
  156.         wingads[BTID_Gadget5]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget5],GA_Disabled,gadgetdata->gd_Disabled_Gadget5,GT_Underscore,'_',TAG_END);
  157.         wingads[BTID_Gadget4]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget4],GA_Disabled,gadgetdata->gd_Disabled_Gadget4,GT_Underscore,'_',TAG_END);
  158.         wingads[CYID_Gadget6]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget6],GA_Disabled,gadgetdata->gd_Disabled_Gadget6,GTCY_Labels,gadgetdata->gd_Labels_Gadget6,GTCY_Active,gadgetdata->gd_Active_Gadget6,TAG_END);
  159.         wingads[CYID_Gadget7]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget7],GA_Disabled,gadgetdata->gd_Disabled_Gadget7,GTCY_Labels,gadgetdata->gd_Labels_Gadget7,GTCY_Active,gadgetdata->gd_Active_Gadget7,TAG_END);
  160.         wingads[CYID_Gadget8]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget8],GA_Disabled,gadgetdata->gd_Disabled_Gadget8,GTCY_Labels,gadgetdata->gd_Labels_Gadget8,GTCY_Active,gadgetdata->gd_Active_Gadget8,TAG_END);
  161.         wingads[CYID_Gadget9]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget9],GA_Disabled,gadgetdata->gd_Disabled_Gadget9,GTCY_Labels,gadgetdata->gd_Labels_Gadget9,GTCY_Active,gadgetdata->gd_Active_Gadget9,TAG_END);
  162.         wingads[CYID_Gadget10]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget10],GA_Disabled,gadgetdata->gd_Disabled_Gadget10,GTCY_Labels,gadgetdata->gd_Labels_Gadget10,GTCY_Active,gadgetdata->gd_Active_Gadget10,TAG_END);
  163.         wingads[CYID_Gadget11]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget11],GA_Disabled,gadgetdata->gd_Disabled_Gadget11,GTCY_Labels,gadgetdata->gd_Labels_Gadget11,GTCY_Active,gadgetdata->gd_Active_Gadget11,TAG_END);
  164.         wingads[INID_Gadget12]=gadget=CreateGadget(INTEGER_KIND,gadget,&newgad[INID_Gadget12],GA_Disabled,gadgetdata->gd_Disabled_Gadget12,GA_TabCycle,TRUE,GTIN_MaxChars,2,GTIN_Number,gadgetdata->gd_Number_Gadget12,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGCENTER,STRINGA_ReplaceMode,FALSE,TAG_END);
  165.         wingads[INID_Gadget13]=gadget=CreateGadget(INTEGER_KIND,gadget,&newgad[INID_Gadget13],GA_Disabled,gadgetdata->gd_Disabled_Gadget13,GA_TabCycle,TRUE,GTIN_MaxChars,2,GTIN_Number,gadgetdata->gd_Number_Gadget13,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGCENTER,STRINGA_ReplaceMode,FALSE,TAG_END);
  166.         wingads[INID_Gadget14]=gadget=CreateGadget(INTEGER_KIND,gadget,&newgad[INID_Gadget14],GA_Disabled,gadgetdata->gd_Disabled_Gadget14,GA_TabCycle,TRUE,GTIN_MaxChars,3,GTIN_Number,gadgetdata->gd_Number_Gadget14,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGCENTER,STRINGA_ReplaceMode,FALSE,TAG_END);
  167.         wingads[LAID_Gadget15]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget15],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  168.         wingads[LAID_Gadget16]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget16],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  169.         wingads[LAID_Gadget18]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget18],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  170.         wingads[LAID_Gadget19]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget19],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  171.         wingads[LAID_Gadget20]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget20],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  172.         wingads[LAID_Gadget21]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget21],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  173.         wingads[LAID_Gadget22]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget22],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  174.         wingads[LAID_Gadget23]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget23],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  175.         wingads[LAID_Gadget24]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget24],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  176.         return gadget;
  177.         }
  178.     else return NULL;
  179. }
  180. ///
  181.  
  182.  
  183. /*************************************************************************/
  184. /*                                                                       */
  185. /*   Routines to handle windows                                          */
  186. /*                                                                       */
  187. /*************************************************************************/
  188.  
  189.  
  190. /// HandlePrinterPrefsWindow()
  191. void HandlePrinterPrefsWindow(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
  192. {
  193.     APTR visualinfo=GetVisualInfo(customscreen,TAG_DONE);
  194.     if (visualinfo)
  195.         {
  196.         struct Gadget  *gadgetlist = NULL;
  197.         struct Menu    *menustrip  = NULL;
  198.         ULONG height=26,width=63,maxheight=1024,maxwidth=1280;
  199.  
  200.         struct Gadget *wingads[23];
  201.  
  202.         char * title                  = "Printer Preferences";
  203.         struct Window     *win        = NULL;
  204.  
  205.         struct TextAttr   textattr    = { GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name,GfxBase->DefaultFont->tf_YSize,FS_NORMAL,FPF_DISKFONT };
  206.  
  207.         struct NewGadget  newgad[]    = {
  208.                                                      XPOS(1),YPOS(0),XSIZE(21),YSIZE(2),"_Printer Type:",&textattr,LAID_Gadget1,PLACETEXT_IN,visualinfo,NULL,
  209.                                                      XPOS(1),YPOS(2),XSIZE(21),YSIZE(20),NULL,&textattr,LVID_Gadget2,PLACETEXT_ABOVE,visualinfo,NULL,
  210.                                                      XPOS(1),YPOS(23),XSIZE(15),YSIZE(2),"_Save",&textattr,BTID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  211.                                                      XPOS(24),YPOS(23),XSIZE(16),YSIZE(2),"_Use",&textattr,BTID_Gadget5,PLACETEXT_IN,visualinfo,NULL,
  212.                                                      XPOS(47),YPOS(23),XSIZE(15),YSIZE(2),"_Cancel",&textattr,BTID_Gadget4,PLACETEXT_IN,visualinfo,NULL,
  213.                                                      XPOS(41),YPOS(1),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget6,PLACETEXT_ABOVE,visualinfo,NULL,
  214.                                                      XPOS(41),YPOS(4),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget7,PLACETEXT_ABOVE,visualinfo,NULL,
  215.                                                      XPOS(41),YPOS(6),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget8,PLACETEXT_ABOVE,visualinfo,NULL,
  216.                                                      XPOS(41),YPOS(8),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget9,PLACETEXT_ABOVE,visualinfo,NULL,
  217.                                                      XPOS(41),YPOS(11),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget10,PLACETEXT_ABOVE,visualinfo,NULL,
  218.                                                      XPOS(41),YPOS(13),XSIZE(21),YSIZE(2),NULL,&textattr,CYID_Gadget11,PLACETEXT_ABOVE,visualinfo,NULL,
  219.                                                      XPOS(52),YPOS(16),XSIZE(10),YSIZE(2),NULL,&textattr,INID_Gadget12,PLACETEXT_LEFT,visualinfo,NULL,
  220.                                                      XPOS(52),YPOS(18),XSIZE(10),YSIZE(2),NULL,&textattr,INID_Gadget13,PLACETEXT_LEFT,visualinfo,NULL,
  221.                                                      XPOS(52),YPOS(20),XSIZE(10),YSIZE(2),NULL,&textattr,INID_Gadget14,PLACETEXT_LEFT,visualinfo,NULL,
  222.                                                      XPOS(24),YPOS(1),XSIZE(16),YSIZE(2),"Printer P_ort   :",&textattr,LAID_Gadget15,PLACETEXT_IN,visualinfo,NULL,
  223.                                                      XPOS(24),YPOS(4),XSIZE(16),YSIZE(2),"Print P_itch    :",&textattr,LAID_Gadget16,PLACETEXT_IN,visualinfo,NULL,
  224.                                                      XPOS(24),YPOS(6),XSIZE(16),YSIZE(2),"Print Sp_acing  :",&textattr,LAID_Gadget18,PLACETEXT_IN,visualinfo,NULL,
  225.                                                      XPOS(24),YPOS(8),XSIZE(16),YSIZE(2),"Print _Quality  :",&textattr,LAID_Gadget19,PLACETEXT_IN,visualinfo,NULL,
  226.                                                      XPOS(24),YPOS(11),XSIZE(16),YSIZE(2),"Paper Typ_e     :",&textattr,LAID_Gadget20,PLACETEXT_IN,visualinfo,NULL,
  227.                                                      XPOS(24),YPOS(13),XSIZE(16),YSIZE(2),"Paper _Format   :",&textattr,LAID_Gadget21,PLACETEXT_IN,visualinfo,NULL,
  228.                                                      XPOS(24),YPOS(16),XSIZE(27),YSIZE(2),"Paper _Length (lines)      :",&textattr,LAID_Gadget22,PLACETEXT_IN,visualinfo,NULL,
  229.                                                      XPOS(24),YPOS(18),XSIZE(27),YSIZE(2),"Left  Ma_rgin (characters) :",&textattr,LAID_Gadget23,PLACETEXT_IN,visualinfo,NULL,
  230.                                                      XPOS(24),YPOS(20),XSIZE(27),YSIZE(2),"Right Margi_n (characters) :",&textattr,LAID_Gadget24,PLACETEXT_IN,visualinfo,NULL,
  231.                                                   };
  232.         char *            LA_Gadget6[]  = { "Parallel","Serial",NULL };
  233.         char *            LA_Gadget7[]  = { "Pica (10 cpi)","Elite (12 cpi)","Fine (15-17 cpi)",NULL };
  234.         char *            LA_Gadget8[]  = { "6 Lines Per Inch","8 Lines Per Inch",NULL };
  235.         char *            LA_Gadget9[]  = { "Letter","Draft",NULL };
  236.         char *            LA_Gadget10[]  = { "Single","Continuous",NULL };
  237.         char *            LA_Gadget11[]  = { "U.S. Letter","U.S. Legal","Narrow Tractor","Wide Tractor","DIN A4",NULL };
  238.  
  239.  
  240.         struct PrinterPrefsWindowData gadgetdata = {
  241.                                                      /* belongs to a listview gadget */
  242.                                                      FALSE,
  243.                                                      (struct List *)~0,
  244.                                                      0,
  245.                                                      0,
  246.                                                      /* belongs to a button */
  247.                                                      FALSE,
  248.                                                      /* belongs to a button */
  249.                                                      FALSE,
  250.                                                      /* belongs to a button */
  251.                                                      FALSE,
  252.                                                      /* belongs to a cycle gadget */
  253.                                                      FALSE,
  254.                                                      0,
  255.                                                      (char * *)&LA_Gadget6[0],
  256.                                                      /* belongs to a cycle gadget */
  257.                                                      FALSE,
  258.                                                      0,
  259.                                                      (char * *)&LA_Gadget7[0],
  260.                                                      /* belongs to a cycle gadget */
  261.                                                      FALSE,
  262.                                                      0,
  263.                                                      (char * *)&LA_Gadget8[0],
  264.                                                      /* belongs to a cycle gadget */
  265.                                                      FALSE,
  266.                                                      0,
  267.                                                      (char * *)&LA_Gadget9[0],
  268.                                                      /* belongs to a cycle gadget */
  269.                                                      FALSE,
  270.                                                      0,
  271.                                                      (char * *)&LA_Gadget10[0],
  272.                                                      /* belongs to a cycle gadget */
  273.                                                      FALSE,
  274.                                                      0,
  275.                                                      (char * *)&LA_Gadget11[0],
  276.                                                      /* belongs to an integer gadget */
  277.                                                      FALSE,
  278.                                                      64,
  279.                                                      /* belongs to an integer gadget */
  280.                                                      FALSE,
  281.                                                      8,
  282.                                                      /* belongs to an integer gadget */
  283.                                                      FALSE,
  284.                                                      100,
  285.                                                   };
  286.  
  287.  
  288.         struct NewMenu    menu[]      = {
  289.                                                      NM_TITLE, "Project",0,0,0,0,
  290.                                                      NM_ITEM ,"Open","O",0,0,0,
  291.                                                      NM_ITEM ,"Save As ...","a",0,0,0,
  292.                                                      NM_ITEM ,NM_BARLABEL,0,0,0,0,
  293.                                                      NM_ITEM ,"Quit ...","q",0,0,0,
  294.                                                      NM_TITLE, "Edit",0,0,0,0,
  295.                                                      NM_ITEM ,"Reset To Defaults","d",0,0,0,
  296.                                                      NM_ITEM ,"Last Saved","l",0,0,0,
  297.                                                      NM_ITEM ,"Restore","r",0,0,0,
  298.                                                      NM_TITLE, "Settings",0,0,0,0,
  299.                                                      NM_ITEM ,"Create Icons ?","i",0|CHECKIT|CHECKED,0,0,
  300.                                                     };
  301.         height= YSIZE(height);
  302.         width = XSIZE(width) ;
  303.         if (left == -1) left  = (customscreen->Width-width)/2;
  304.         if (top  == -1) top   = (customscreen->Height-height)/2;
  305.  
  306.         if (CreateGadgetsPrinterPrefsWindow(&gadgetlist,newgad,wingads,&gadgetdata) != NULL)
  307.             {
  308.             if (height>customscreen->Height || width>customscreen->Width) GUIC_ErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
  309.             win=OpenWindowTags(NULL,WA_Activate,         TRUE,
  310.                                             WA_CloseGadget,      TRUE,
  311.                                             WA_DepthGadget,      TRUE,
  312.                                             WA_SizeGadget,       TRUE,
  313.                                             WA_DragBar,          TRUE,
  314.                                             WA_Gadgets,          gadgetlist,
  315.                                             WA_InnerHeight,      height,
  316.                                             WA_InnerWidth,       width,
  317.                                             WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|IDCMP_MENUPICK|BUTTONIDCMP|INTEGERIDCMP|CYCLEIDCMP|LISTVIEWIDCMP,
  318.                                             WA_Left,             left,
  319.                                             WA_Top,              top,
  320.                                             WA_MaxHeight,        maxheight,
  321.                                             WA_MinHeight,        height,
  322.                                             WA_MaxWidth,         maxwidth,
  323.                                             WA_MinWidth,         width,
  324.                                             WA_SizeBRight,       FALSE,
  325.                                             WA_SizeBBottom,      TRUE,
  326.                                             WA_SmartRefresh,     TRUE,
  327.                                             WA_CustomScreen,     customscreen,
  328.                                             WA_Title,            title,
  329.                                             WA_NewLookMenus,     TRUE,
  330.                                             TAG_END);
  331.             if (win)
  332.                 {
  333.                 menustrip=CreateMenus(menu,GTMN_NewLookMenus,TRUE,TAG_END);
  334.                 if (menustrip)
  335.                     {
  336.                     if (LayoutMenus(menustrip,visualinfo,GTMN_NewLookMenus,TRUE,TAG_END))
  337.                         {
  338.                         if (SetMenuStrip(win,menustrip))
  339.                             {
  340.                             struct IntuiMessage  *imessage   = NULL;
  341.                             struct Gadget        *idcmpgad   = NULL;
  342.                             struct NewGadget     ngcopy[]    = newgad;
  343.                             long   double        xscale      = 1.0;
  344.                             long   double        yscale      = 1.0;
  345.                             ULONG                i           = 0;
  346.                             ULONG                gadgetcount = 23;
  347.                             ULONG  idcmpclass                = 0;
  348.                             UWORD  messagecode               = 0;
  349.                             BOOL   running                   = TRUE;
  350.                             ULONG  signal                    = 0;
  351.                             ULONG  longpointer1              = 0;
  352.                             ULONG  longpointer2              = 0;
  353.  
  354.                             SetFont(win->RPort,GfxBase->DefaultFont);
  355.  
  356.                             GT_RefreshWindow(win,NULL);
  357.  
  358.                             /* User-Setup */
  359.                             UserSetupPrinterPrefsWindow(win,wingads,userdata);
  360.                             do
  361.                                 {
  362.                                 WindowLimits(win,width+win->BorderLeft+win->BorderRight,height+win->BorderTop+win->BorderBottom,maxwidth,maxheight);
  363.                                 if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
  364.                                 if (signal & SIGBREAKF_CTRL_C) running=FALSE;
  365.                                 WindowLimits(win,win->Width,win->Height,win->Width,win->Height);
  366.                                 while (running && (imessage=GT_GetIMsg(win->UserPort)))
  367.                                     {
  368.                                     idcmpgad=(struct Gadget *)imessage->IAddress;
  369.                                     idcmpclass=imessage->Class;
  370.                                     messagecode =imessage->Code;
  371.  
  372.                                     GT_ReplyIMsg(imessage);
  373.  
  374.                                     switch(idcmpclass)
  375.                                         {
  376.                                         case IDCMP_REFRESHWINDOW:
  377.                                             GT_BeginRefresh(win);
  378.                                             GT_EndRefresh(win,TRUE);
  379.                                             break;
  380.                                         case IDCMP_MENUPICK:
  381.                                             switch(MENUNUM(messagecode))
  382.                                                 {
  383.                                                 case 0:
  384.                                                     switch (ITEMNUM(messagecode))
  385.                                                         {
  386.                                                         case 0:
  387.                                                             ItemOpenClicked(win,wingads,userdata);
  388.                                                             break;
  389.                                                         case 1:
  390.                                                             ItemSaveClicked(win,wingads,userdata);
  391.                                                             break;
  392.                                                         case 3:
  393.                                                             ItemQuitClicked(win,wingads,userdata);
  394.                                                             break;
  395.                                                         }
  396.                                                     break;
  397.                                                 case 1:
  398.                                                     switch (ITEMNUM(messagecode))
  399.                                                         {
  400.                                                         }
  401.                                                     break;
  402.                                                 case 2:
  403.                                                     switch (ITEMNUM(messagecode))
  404.                                                         {
  405.                                                         }
  406.                                                     break;
  407.                                                 }
  408.                                             break;
  409.                                         case IDCMP_NEWSIZE:
  410.                                             GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GA_Disabled,&longpointer1,GTLV_Labels,&longpointer2,TAG_END);
  411.                                             gadgetdata.gd_Disabled_Gadget2=(longpointer1 == 0)?FALSE:TRUE;
  412.                                             gadgetdata.gd_Labels_Gadget2=(struct List *)longpointer2;
  413.                                             GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Top,&longpointer1,GTLV_Selected,&longpointer2,TAG_END);
  414.                                             gadgetdata.gd_Top_Gadget2=longpointer1;
  415.                                             gadgetdata.gd_Selected_Gadget2=longpointer2;
  416.                                             GT_GetGadgetAttrs(wingads[BTID_Gadget3],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  417.                                             gadgetdata.gd_Disabled_Gadget3=(longpointer1 == 0)?FALSE:TRUE;
  418.                                             GT_GetGadgetAttrs(wingads[BTID_Gadget5],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  419.                                             gadgetdata.gd_Disabled_Gadget5=(longpointer1 == 0)?FALSE:TRUE;
  420.                                             GT_GetGadgetAttrs(wingads[BTID_Gadget4],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  421.                                             gadgetdata.gd_Disabled_Gadget4=(longpointer1 == 0)?FALSE:TRUE;
  422.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  423.                                             gadgetdata.gd_Disabled_Gadget6=(longpointer1 == 0)?FALSE:TRUE;
  424.                                             gadgetdata.gd_Active_Gadget6=longpointer2;
  425.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  426.                                             gadgetdata.gd_Labels_Gadget6=(char * *)longpointer1;
  427.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  428.                                             gadgetdata.gd_Disabled_Gadget7=(longpointer1 == 0)?FALSE:TRUE;
  429.                                             gadgetdata.gd_Active_Gadget7=longpointer2;
  430.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  431.                                             gadgetdata.gd_Labels_Gadget7=(char * *)longpointer1;
  432.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  433.                                             gadgetdata.gd_Disabled_Gadget8=(longpointer1 == 0)?FALSE:TRUE;
  434.                                             gadgetdata.gd_Active_Gadget8=longpointer2;
  435.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  436.                                             gadgetdata.gd_Labels_Gadget8=(char * *)longpointer1;
  437.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  438.                                             gadgetdata.gd_Disabled_Gadget9=(longpointer1 == 0)?FALSE:TRUE;
  439.                                             gadgetdata.gd_Active_Gadget9=longpointer2;
  440.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  441.                                             gadgetdata.gd_Labels_Gadget9=(char * *)longpointer1;
  442.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  443.                                             gadgetdata.gd_Disabled_Gadget10=(longpointer1 == 0)?FALSE:TRUE;
  444.                                             gadgetdata.gd_Active_Gadget10=longpointer2;
  445.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  446.                                             gadgetdata.gd_Labels_Gadget10=(char * *)longpointer1;
  447.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GA_Disabled,&longpointer1,GTCY_Active,&longpointer2,TAG_END);
  448.                                             gadgetdata.gd_Disabled_Gadget11=(longpointer1 == 0)?FALSE:TRUE;
  449.                                             gadgetdata.gd_Active_Gadget11=longpointer2;
  450.                                             GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GTCY_Labels,&longpointer1,TAG_END);
  451.                                             gadgetdata.gd_Labels_Gadget11=(char * *)longpointer1;
  452.                                             GT_GetGadgetAttrs(wingads[INID_Gadget12],win,NULL,GA_Disabled,&longpointer1,GTIN_Number,&longpointer2,TAG_END);
  453.                                             gadgetdata.gd_Disabled_Gadget12=(longpointer1 == 0)?FALSE:TRUE;
  454.                                             gadgetdata.gd_Number_Gadget12=longpointer2;
  455.                                             GT_GetGadgetAttrs(wingads[INID_Gadget13],win,NULL,GA_Disabled,&longpointer1,GTIN_Number,&longpointer2,TAG_END);
  456.                                             gadgetdata.gd_Disabled_Gadget13=(longpointer1 == 0)?FALSE:TRUE;
  457.                                             gadgetdata.gd_Number_Gadget13=longpointer2;
  458.                                             GT_GetGadgetAttrs(wingads[INID_Gadget14],win,NULL,GA_Disabled,&longpointer1,GTIN_Number,&longpointer2,TAG_END);
  459.                                             gadgetdata.gd_Disabled_Gadget14=(longpointer1 == 0)?FALSE:TRUE;
  460.                                             gadgetdata.gd_Number_Gadget14=longpointer2;
  461.  
  462.                                             RemoveGList(win,gadgetlist,-1);
  463.                                             SetAPen(win->RPort,0L);
  464.                                             RectFill(win->RPort,win->BorderLeft,win->BorderTop,win->Width-win->BorderRight-1,win->Height-win->BorderBottom-1);
  465.                                             RefreshWindowFrame(win);
  466.  
  467.                                             xscale=(long double)win->Width /(long double)(width+win->BorderLeft+win->BorderRight);
  468.                                             yscale=(long double)win->Height/(long double)(height+win->BorderTop+win->BorderBottom);
  469.                                             for (i=0;i<gadgetcount;i++)
  470.                                                 {
  471.                                                 ngcopy[i].ng_LeftEdge=(WORD)((long double)newgad[i].ng_LeftEdge*xscale);
  472.                                                 ngcopy[i].ng_TopEdge =(WORD)((long double)newgad[i].ng_TopEdge *yscale);
  473.                                                 ngcopy[i].ng_Width   =(WORD)((long double)newgad[i].ng_Width   *xscale);
  474.                                                 ngcopy[i].ng_Height  =(WORD)((long double)newgad[i].ng_Height  *yscale);
  475.                                                 }
  476.  
  477.                                             FreeGadgets(gadgetlist);
  478.                                             gadgetlist=NULL;
  479.  
  480.                                             CreateGadgetsPrinterPrefsWindow(&gadgetlist,ngcopy,wingads,&gadgetdata);
  481.                                             AddGList(win,gadgetlist,-1,-1,NULL);
  482.                                             RefreshGList(gadgetlist,win,NULL,-1);
  483.                                             GT_RefreshWindow(win,NULL);
  484.  
  485.                                             UserRefreshPrinterPrefsWindow(win,wingads,userdata);
  486.                                             break;
  487.                                         case IDCMP_VANILLAKEY:
  488.                                             switch(messagecode)
  489.                                                 {
  490.                                                 case 'p':
  491.                                                     GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  492.                                                     if (longpointer1 == 0)
  493.                                                         {
  494.                                                         GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Selected,&longpointer1,TAG_END);
  495.                                                         GT_SetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Selected,longpointer1+1,TAG_END);
  496.                                                         GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Selected,&longpointer2,TAG_END);
  497.                                                         if (longpointer2 != longpointer1)
  498.                                                             {
  499.                                                             HandleGadgetsPrinterPrefsWindow(win,wingads,LVID_Gadget2,longpointer2,&gadgetdata,userdata);
  500.                                                             }
  501.                                                         }
  502.                                                     break;
  503.                                                 case 'P':
  504.                                                     GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  505.                                                     if (longpointer1 == 0)
  506.                                                         {
  507.                                                         GT_GetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Selected,&longpointer1,TAG_END);
  508.                                                         if (longpointer1 != 0)
  509.                                                             {
  510.                                                             GT_SetGadgetAttrs(wingads[LVID_Gadget2],win,NULL,GTLV_Selected,longpointer1-1,TAG_END);
  511.                                                             HandleGadgetsPrinterPrefsWindow(win,wingads,LVID_Gadget2,longpointer1-1,&gadgetdata,userdata);
  512.                                                             }
  513.                                                         }
  514.                                                     break;
  515.                                                 case 's':
  516.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget3],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  517.                                                     if (longpointer1 == 0)
  518.                                                         {
  519.                                                         ShowGadget(win,wingads[BTID_Gadget3],GADGET_DOWN);
  520.                                                         Delay(5);
  521.                                                         ShowGadget(win,wingads[BTID_Gadget3],GADGET_UP  );
  522.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,BTID_Gadget3,messagecode,&gadgetdata,userdata);
  523.                                                         }
  524.                                                     break;
  525.                                                 case 'u':
  526.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget5],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  527.                                                     if (longpointer1 == 0)
  528.                                                         {
  529.                                                         ShowGadget(win,wingads[BTID_Gadget5],GADGET_DOWN);
  530.                                                         Delay(5);
  531.                                                         ShowGadget(win,wingads[BTID_Gadget5],GADGET_UP  );
  532.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,BTID_Gadget5,messagecode,&gadgetdata,userdata);
  533.                                                         }
  534.                                                     break;
  535.                                                 case 'c':
  536.                                                     GT_GetGadgetAttrs(wingads[BTID_Gadget4],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  537.                                                     if (longpointer1 == 0)
  538.                                                         {
  539.                                                         ShowGadget(win,wingads[BTID_Gadget4],GADGET_DOWN);
  540.                                                         Delay(5);
  541.                                                         ShowGadget(win,wingads[BTID_Gadget4],GADGET_UP  );
  542.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,BTID_Gadget4,messagecode,&gadgetdata,userdata);
  543.                                                         }
  544.                                                     break;
  545.                                                 case 'o':
  546.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  547.                                                     if (longpointer1 == 0)
  548.                                                         {
  549.                                                         ShowGadget(win,wingads[CYID_Gadget6],GADGET_DOWN);
  550.                                                         Delay(5);
  551.                                                         ShowGadget(win,wingads[CYID_Gadget6],GADGET_UP  );
  552.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  553.                                                         if (++longpointer1 == 2) longpointer1=0;
  554.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GTCY_Active,longpointer1,TAG_END);
  555.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget6,longpointer1,&gadgetdata,userdata);
  556.                                                         }
  557.                                                     break;
  558.                                                 case 'O':
  559.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  560.                                                     if (longpointer1 == 0)
  561.                                                         {
  562.                                                         ShowGadget(win,wingads[CYID_Gadget6],GADGET_DOWN);
  563.                                                         Delay(5);
  564.                                                         ShowGadget(win,wingads[CYID_Gadget6],GADGET_UP  );
  565.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  566.                                                         if (longpointer1 == 0) longpointer1=2;
  567.                                                     longpointer1--;
  568.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget6],win,NULL,GTCY_Active,longpointer1,TAG_END);
  569.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget6,longpointer1,&gadgetdata,userdata);
  570.                                                         }
  571.                                                     break;
  572.                                                 case 'i':
  573.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  574.                                                     if (longpointer1 == 0)
  575.                                                         {
  576.                                                         ShowGadget(win,wingads[CYID_Gadget7],GADGET_DOWN);
  577.                                                         Delay(5);
  578.                                                         ShowGadget(win,wingads[CYID_Gadget7],GADGET_UP  );
  579.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  580.                                                         if (++longpointer1 == 3) longpointer1=0;
  581.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GTCY_Active,longpointer1,TAG_END);
  582.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget7,longpointer1,&gadgetdata,userdata);
  583.                                                         }
  584.                                                     break;
  585.                                                 case 'I':
  586.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  587.                                                     if (longpointer1 == 0)
  588.                                                         {
  589.                                                         ShowGadget(win,wingads[CYID_Gadget7],GADGET_DOWN);
  590.                                                         Delay(5);
  591.                                                         ShowGadget(win,wingads[CYID_Gadget7],GADGET_UP  );
  592.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  593.                                                         if (longpointer1 == 0) longpointer1=3;
  594.                                                     longpointer1--;
  595.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget7],win,NULL,GTCY_Active,longpointer1,TAG_END);
  596.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget7,longpointer1,&gadgetdata,userdata);
  597.                                                         }
  598.                                                     break;
  599.                                                 case 'a':
  600.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  601.                                                     if (longpointer1 == 0)
  602.                                                         {
  603.                                                         ShowGadget(win,wingads[CYID_Gadget8],GADGET_DOWN);
  604.                                                         Delay(5);
  605.                                                         ShowGadget(win,wingads[CYID_Gadget8],GADGET_UP  );
  606.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  607.                                                         if (++longpointer1 == 2) longpointer1=0;
  608.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GTCY_Active,longpointer1,TAG_END);
  609.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget8,longpointer1,&gadgetdata,userdata);
  610.                                                         }
  611.                                                     break;
  612.                                                 case 'A':
  613.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  614.                                                     if (longpointer1 == 0)
  615.                                                         {
  616.                                                         ShowGadget(win,wingads[CYID_Gadget8],GADGET_DOWN);
  617.                                                         Delay(5);
  618.                                                         ShowGadget(win,wingads[CYID_Gadget8],GADGET_UP  );
  619.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  620.                                                         if (longpointer1 == 0) longpointer1=2;
  621.                                                     longpointer1--;
  622.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget8],win,NULL,GTCY_Active,longpointer1,TAG_END);
  623.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget8,longpointer1,&gadgetdata,userdata);
  624.                                                         }
  625.                                                     break;
  626.                                                 case 'q':
  627.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  628.                                                     if (longpointer1 == 0)
  629.                                                         {
  630.                                                         ShowGadget(win,wingads[CYID_Gadget9],GADGET_DOWN);
  631.                                                         Delay(5);
  632.                                                         ShowGadget(win,wingads[CYID_Gadget9],GADGET_UP  );
  633.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  634.                                                         if (++longpointer1 == 2) longpointer1=0;
  635.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GTCY_Active,longpointer1,TAG_END);
  636.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget9,longpointer1,&gadgetdata,userdata);
  637.                                                         }
  638.                                                     break;
  639.                                                 case 'Q':
  640.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  641.                                                     if (longpointer1 == 0)
  642.                                                         {
  643.                                                         ShowGadget(win,wingads[CYID_Gadget9],GADGET_DOWN);
  644.                                                         Delay(5);
  645.                                                         ShowGadget(win,wingads[CYID_Gadget9],GADGET_UP  );
  646.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  647.                                                         if (longpointer1 == 0) longpointer1=2;
  648.                                                     longpointer1--;
  649.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget9],win,NULL,GTCY_Active,longpointer1,TAG_END);
  650.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget9,longpointer1,&gadgetdata,userdata);
  651.                                                         }
  652.                                                     break;
  653.                                                 case 'e':
  654.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  655.                                                     if (longpointer1 == 0)
  656.                                                         {
  657.                                                         ShowGadget(win,wingads[CYID_Gadget10],GADGET_DOWN);
  658.                                                         Delay(5);
  659.                                                         ShowGadget(win,wingads[CYID_Gadget10],GADGET_UP  );
  660.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  661.                                                         if (++longpointer1 == 2) longpointer1=0;
  662.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GTCY_Active,longpointer1,TAG_END);
  663.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget10,longpointer1,&gadgetdata,userdata);
  664.                                                         }
  665.                                                     break;
  666.                                                 case 'E':
  667.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  668.                                                     if (longpointer1 == 0)
  669.                                                         {
  670.                                                         ShowGadget(win,wingads[CYID_Gadget10],GADGET_DOWN);
  671.                                                         Delay(5);
  672.                                                         ShowGadget(win,wingads[CYID_Gadget10],GADGET_UP  );
  673.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  674.                                                         if (longpointer1 == 0) longpointer1=2;
  675.                                                     longpointer1--;
  676.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget10],win,NULL,GTCY_Active,longpointer1,TAG_END);
  677.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget10,longpointer1,&gadgetdata,userdata);
  678.                                                         }
  679.                                                     break;
  680.                                                 case 'f':
  681.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  682.                                                     if (longpointer1 == 0)
  683.                                                         {
  684.                                                         ShowGadget(win,wingads[CYID_Gadget11],GADGET_DOWN);
  685.                                                         Delay(5);
  686.                                                         ShowGadget(win,wingads[CYID_Gadget11],GADGET_UP  );
  687.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  688.                                                         if (++longpointer1 == 5) longpointer1=0;
  689.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GTCY_Active,longpointer1,TAG_END);
  690.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget11,longpointer1,&gadgetdata,userdata);
  691.                                                         }
  692.                                                     break;
  693.                                                 case 'F':
  694.                                                     GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  695.                                                     if (longpointer1 == 0)
  696.                                                         {
  697.                                                         ShowGadget(win,wingads[CYID_Gadget11],GADGET_DOWN);
  698.                                                         Delay(5);
  699.                                                         ShowGadget(win,wingads[CYID_Gadget11],GADGET_UP  );
  700.                                                         GT_GetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  701.                                                         if (longpointer1 == 0) longpointer1=5;
  702.                                                     longpointer1--;
  703.                                                         GT_SetGadgetAttrs(wingads[CYID_Gadget11],win,NULL,GTCY_Active,longpointer1,TAG_END);
  704.                                                         HandleGadgetsPrinterPrefsWindow(win,wingads,CYID_Gadget11,longpointer1,&gadgetdata,userdata);
  705.                                                         }
  706.                                                     break;
  707.                                                 case 'l':
  708.                                                     GT_GetGadgetAttrs(wingads[INID_Gadget12],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  709.                                                     if (longpointer1 == 0) ActivateGadget(wingads[INID_Gadget12],win,NULL);
  710.                                                     break;
  711.                                                 case 'r':
  712.                                                     GT_GetGadgetAttrs(wingads[INID_Gadget13],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  713.                                                     if (longpointer1 == 0) ActivateGadget(wingads[INID_Gadget13],win,NULL);
  714.                                                     break;
  715.                                                 case 'n':
  716.                                                     GT_GetGadgetAttrs(wingads[INID_Gadget14],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  717.                                                     if (longpointer1 == 0) ActivateGadget(wingads[INID_Gadget14],win,NULL);
  718.                                                     break;
  719.                                                 case 27:
  720.                                                     running=FALSE;
  721.                                                     break;
  722.                                                 }
  723.                                             break;
  724.                                         case IDCMP_CLOSEWINDOW:
  725.                                             running=FALSE;
  726.                                             break;
  727.                                         case IDCMP_GADGETUP:
  728.                                         case MXIDCMP:
  729.                                             HandleGadgetsPrinterPrefsWindow(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,userdata);
  730.                                             break;
  731.                                         }
  732.                                     /* end-switch */
  733.                                     }
  734.                                 /* end-while */
  735.                                 }
  736.                             while (running);
  737.                             ClearMenuStrip(win);
  738.                             }
  739.                         else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  740.                         }
  741.                     else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  742.                     FreeMenus(menustrip);
  743.                     }
  744.                 else GUIC_ErrorReport(win,ERROR_NO_WINDOW_MENU);
  745.                 if (win) CloseWindow(win);
  746.                 }
  747.             else GUIC_ErrorReport(win,ERROR_NO_WINDOW_OPENED);
  748.             if (gadgetlist) FreeGadgets(gadgetlist);
  749.             }
  750.         else GUIC_ErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
  751.         if (visualinfo) FreeVisualInfo(visualinfo);
  752.         }
  753.     else GUIC_ErrorReport(NULL,ERROR_NO_VISUALINFO);
  754. }
  755. ///
  756.  
  757.